Computer systems coupled to a data communications network, such as the Internet, allow for the exchange of a wide variety of information between users of such computer systems. One popular use of computer networks, such as the Internet, allows users to operate client communications software, known as a web browser, to communicate with remote computer systems, known as web servers, in order to browse web pages on the World Wide Web. The World Wide Web is generally a collection of web server computer systems that each operates web server software that communicates using a number of different data communications protocols and data formats, to allow each user's browser to make web page requests to the web servers. In response to these web page requests, web servers obtain (e.g., from storage, or via dynamic generation) the requested web pages and serve those pages back to each user's web browser for viewing by the user.
A typical web page is written in a markup language, such as the Hypertext Markup Language (HTML), and includes a number of embedded objects referenced by respective Uniform Resource Locators (URLs) within the HTML of a web page. The web page itself is generally referenced by a URL, as well. When a user provides a URL to a web browser of a web page (either by clicking a hyperlink identifying the URL to that web page, or by typing in the URL of the web page), the web browser performs a detailed sequence of processing tasks to obtain that web page. As an example, if the URL of the web page identifies a domain name of a server computer system on the Internet, the web browser must first perform a Domain Name Service (DNS) lookup of the domain name to resolve this alphanumeric name into the Internet Protocol (IP) address of the web server on the Internet that can serve the page referenced by the URL. Once this DNS lookup is complete, the web browser establishes a connection to the web server (e.g., a Transmission Control Protocol or TCP connection) and uses a Hypertext Transport Protocol (HTTP) to transmit a web page GET request over the connection to the web server. The HTTP GET request contains the URL of the web page to be served by the server. The web server receives this HTTP GET request, obtains or dynamically generates the web page, and returns the web page as HTML to the web browser in an HTTP response message over the connection.
As the web browser receives the HTML for the web page, the HTML of the web page may include many embedded URL's that define other objects within the web page to be obtained by web browser. As an example, a graphic or image embedded within the web page is typically referenced with an embedded URL that specifies a server, and location (e.g. filename and directory path) within the server of that graphic or image. As the web browser encounters objects such as embedded URL's within the web page, the web browser repeats the sequence of processing described above the URL for the web page in order to obtain each embedded object, this can include performing a DNS lookup of the domain name specified in the URL (if that domain name was not previously resolved), establishing a connection to a server, and initiating an HTTP get request to obtain the content associated with the embedded URL. Modern web pages often contain many embedded objects, and URLs, that reference these objects, often specify different server computer systems from which to obtain these objects. As a result, the process of obtaining the complete content associated with a single web page including all embedded objects involves significant processing and communications activities.
Sophisticated web server software systems allow a user to visit the web site using his or her browser in order to perform transactions within the web site such as purchasing goods or services. Performance of the transaction with a web site typically involves the user operating the web browser to initially navigate to the homepage of the commercial web site. From the homepage, the user is able to further navigate to other pages associated with the web site in order to perform the transaction, such as, for example, selecting goods or services to be placed into an electronic or virtual shopping cart maintained within the web server as the user moves form page to page of the transaction. When the user has completed the selection of goods and services to be purchased, the user can further navigate within the web site to one or more purchasing web pages that allow the user, for example, to enter credit card information for payment of the selected goods and services. The web server software is able to process the credit card payment and allow or deny the purchase of the selected goods and services to complete the transaction. A single transaction might involve visiting and providing user input to a sequence of many web pages.
Other types of transactions might involve navigating through a sequence of web pages to obtain desired content, performing searches for user specified information, and so forth. Depending upon the purpose of the web site, a typical user transaction can involve a user visiting a number of pages and providing user input on those pages. The web server often uses input from one or more pages to produce successive web pages in a given transaction.
Many organizations such as corporations, universities and web-based businesses rely heavily on the ability of their web site to properly perform transactions without errors. Because of the importance of ensuring that such web sites are operating properly, software developers have produced a number of conventional tools to exercise and test a web site and measure the performance of that web site's ability to process user transactions correctly and efficiently.
One conventional web site testing and performance measurement tool is a first generation web site testing tool, and is also referred to herein as a single web page test tool. A first generation single web page test tool allows an operator of the tool to provide a single URL of a single web page to the tool. In response to receiving this URL, the tool is able to initiate a web page request for the web page located at the URL, and is able to measure and collect certain performance ratings of the web site with respect to how fast the web server returns the web page in response to initiating the request for the web page using the URL. As an example, one conventional performance measurement tool is able to initiate a request for a web page and track the amount of time required to establish a connection to the web server that serves that web page. Additionally, the conventional first generation single page test tool is able to determine the amount of time required to begin receiving data for the web page, and the amount of time required for the entire web page to be delivered back to the test tool. Additionally, the conventional test tool is able to parse hypertext markup language (HTML) to determine if the web page was properly returned from the web server.
More sophisticated second generation web server performance and testing tools provide the ability to specify a sequence of web pages to be obtained from a web site. Such conventional web testing tools are referred to as second generation web testing tools and operate by wrapping an actual web browser with a software program to essentially remotely control the web browser using software application programming interfaces (APIs) to cause the browser under control of the test tool to visit sequence of pages to perform a transaction with web server.